package com.aoxin.mapper.opm;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.aoxin.model.dto.SelectDto;
import com.aoxin.model.opm.SlfClassroom;

/**
 * 教室Mapper
 * 
 * @author Melody
 * @date 2018年3月21日 上午10:12:16
 */
public interface SlfClassroomMapper {

	/**
	 * 删除教室
	 * 
	 * @param classroomId
	 *            教室ID
	 */
	void deleteByPrimaryKey(Integer classroomId);

	/**
	 * 批量删除
	 * 
	 * @param classroomIds
	 *            教室ID集合
	 */
	void deleteByPrimaryKeys(List<Integer> classroomIds);

	/**
	 * 添加教室
	 * 
	 * @param record
	 *            教室
	 */
	void insertSelective(SlfClassroom record);

	/**
	 * 查询教室
	 * 
	 * @param classroomId
	 *            教室ID
	 * @return 教室
	 */
	SlfClassroom selectByPrimaryKey(Integer classroomId);

	/**
	 * 修改教室
	 * -
	 * @param record
	 *            教室
	 */
	void updateByPrimaryKeySelective(SlfClassroom record);

	/**
	 * 批量修改菜单状态
	 * 
	 * @param classroomIds
	 *            教室ID集合
	 * @param state
	 *            状态
	 */
	void updateStates(@Param("classroomIds") List<Integer> classroomIds, @Param("state") Integer state);

	/**
	 * 查询教室
	 * 
	 * @param map
	 *            条件集合
	 * @return 集合
	 */
	List<SlfClassroom> getList(Map<String, Object> map);

	/**
	 * 获取记录数
	 *
	 * @param params
	 *            查询条件
	 * @return 记录数
	 */
	Long getRecordCount(Map<String, Object> params);

	/**
	 * 获取下一排序号
	 * 
	 * @param schoolId
	 *            学校
	 * @return 序号
	 */
	Long getNextSequence(@Param("schoolId") Integer schoolId);

	/**
	 * 检查名称重复
	 * 
	 * @param name
	 *            名称
	 * @param classroomId
	 *            教室ID
	 * @return 数据量
	 */
	Long checkName(@Param("name") String name, @Param("classroomId") Integer classroomId);

	/**
	 * 根据学校查询教室
	 * 
	 * @param schoolId
	 *            学校ID
	 * @return 教室下拉树
	 */
	List<SelectDto> getListBySchoolId(Integer schoolId);
	
	/**
	 * 查出所有能用的教室(每个不同包的教室)
	 * 
	 * @param coursepackageId
	 *           
	 * @return List<SlfClassroom>
	 */
	List<SlfClassroom> getSlfClassroom(Integer classroomId);
	
	/**
	 * 查出所有能用的教室(每个不同包的教室)
	 * 
	 * @param coursepackageId
	 *           
	 * @return List<SlfClassroom>
	 */
	List<SlfClassroom> getSlfClassroomOther(@Param("classroomId") Integer classroomId,@Param("coursePageId") Integer coursePageId);
	
	/**
	 * 查出所有能用的教室(每个不同包的教室)
	 * 
	 * @param coursepackageId
	 *           
	 * @return List<SlfClassroom>
	 */
	List<SlfClassroom> getSlfClassrooms();
	
	//教室绑定包
	void insertClassroomPackageMapper(Map<String,Object> map);
	
	void deleteClassroomPackageMapper(Integer classroomId);
	
	//教室绑定包
	List<SlfClassroom> getClassroomPackageMapper(Map<String,Object> map);
	
	//判断是否绑定教室
	Integer IsBindingclassroom(Integer schoolId);
	
	String queryClassRoomBindingPackage(@Param("classroomId") Integer classroomId);
	
	String getClassroomName(@Param("classroomId") Integer classroomId);
	
	String getClassroomTeachName(@Param("classroomId") Integer classroomId);
	
}